package com.lilosoft.core.executor.log;

import java.util.Date;
import java.util.Map;
import java.util.TimerTask;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.lilosoft.core.context.SpringContext;
import com.lilosoft.core.executor.ThreadPoolManager;
import com.lilosoft.core.utils.Exceptions;
import com.lilosoft.core.utils.commons.StringUtils;
/**
 * 日志操作任务创建工厂
 *
 * @author qiusheng
 * @version 2018-05-25
 */
public class LogTaskFactory {

	private static Logger logger = LoggerFactory.getLogger(ThreadPoolManager.class);
	public static final String CACHE_MENU_NAME_PATH_MAP = "menuNamePathMap";
	
	//private static GdmsLogService logService = SpringContext.getBean(GdmsLogService.class);
    
    public static void bussinessLog(final Long duration,final Exception ex,final String remoteHost, final String moduleName,
    		final String clazzName, final String methodName, final String remark, final Map<String, String[]> paramMap, Object[] args) {
            	try {
//            			GdmsLog log = new GdmsLog();
//            			log.setTitle(moduleName);
//            			log.setDuration(duration);
//            			log.setRemark(remark);
//            			log.setLogType(ex == null ? GdmsLog.TYPE_ACCESS : GdmsLog.TYPE_EXCEPTION);
//            			log.setRemoteAddr("");
//            			log.setUserAgent("");
//            			log.setRequestUri("");
//            			log.setParams(paramMap);
//            			log.setMethod(methodName);
//            			log.setCreateDate(new Date());
//            			log.setAppCode("submit");
//            			log.setSuffix("submit");
//            			if(StringUtils.isNotEmpty(log.getSuffix())){
//            				log.setSuffix("_"+log.getSuffix());
//            			}
//            			// 如果有异常，设置异常信息
//            			log.setLogException(Exceptions.getStackTraceAsString(ex));
//            			// 异步保存日志
//            			new SaveLogThread(log).start();
            			//logService.saveLog(log);     		
            	} catch (Exception e) {
            		logger.error("创建业务日志异常!", e);
            	}	
    }
    /**
	 * 保存日志线程
	 */
//	public static class SaveLogThread extends Thread{
//		
//		private GdmsLog log;
//		
//		public SaveLogThread(GdmsLog log){
//			super(SaveLogThread.class.getSimpleName());
//			this.log = log;
//		}
//		
//		
//		
//		@Override
//		public void run() {
//			try {
//				// 保存日志信息
//				logService.saveLog(log);
//			} catch (Exception e) {
//				e.printStackTrace();
//			}
//		}
//	}
//	
//	/**
//	 * 保存日志线程
//	 */
//	public static class UpdateLogThread extends Thread{
//		
//		private GdmsLog log;
//		
//		public UpdateLogThread(GdmsLog log){
//			super(UpdateLogThread.class.getSimpleName());
//			this.log = log;
//		}
//	
//		
//		@Override
//		public void run() {
//			try {
//				// 保存日志信息
//				logService.updateLog(log);
//			} catch (Exception e) {
//				e.printStackTrace();
//			}
//		}
///	}
}
